#include "hal_sysTick.h"

extern uint32_t SystemCoreClock;
void SysTick_Init(void)
{
    //DBG_MSG("SystemCoreClock:%dMHz\r\n",SystemCoreClock);
    if(SysTick_Config(SystemCoreClock / 100000))
    {
        /*capture error*/
        while(1);
    }
}

void SysTick_Delay_Us(__IO uint32_t us)
{
    uint32_t i;
    SysTick_Config(SystemCoreClock / 100000);
    for(i=0;i<us;i++)
    {
        //当计数器的值减少到0的时候,CTRL寄存器的值得bit 16 会置1
        while(!((SysTick->CTRL)&(1<<16)));
    }
    //关闭SysTick时钟
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
}

void SysTick_Delay_Ms(__IO uint32_t us)
{
    uint32_t i;
    SysTick_Config(SystemCoreClock / 1000);
    for(i=0;i<us;i++)
    {
        while(!((SysTick->CTRL)&(1<<16)));
    }
    //关闭SysTick时钟
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
}

